草庐IT

ios - 在 appdelegate 中以编程方式实例化 Storyboard

全部标签

ruby - 改进仅适用于实例方法吗?

我试图了解Ruby的优化功能,但遇到了一个我不了解的场景。以这个示例代码为例:classTravellerdefwhat_are_youputs"I'maBackpacker"enddefself.preferred_accommodationputs"Hostels"endendmoduleRefinementsmoduleMoneydefwhat_are_youputs"I'macashed-uphedonist!"endmoduleClassMethodsdefpreferred_accommodationputs"ExpensiveHotels"endenddefself.in

Ruby 元编程,RSpec 的 'should' 是如何工作的?

我正在阅读RSpec,并试图弄清楚RSpec的“应该”是如何实现的。有人可以介绍一下这个函数的元性质是如何工作的吗?代码位于:http://github.com/dchelimsky/rspec/blob/master/lib/spec/expectations/extensions/kernel.rbTIA,-丹尼尔澄清:target.should==5target的值是如何传递给“should”的,而“should”又是“==”而不是5? 最佳答案 看看classOperatorMatcher.这一切都归结为Ruby允许您省略句

ruby-on-rails - 如何以智能方式从多维数组中获取 "extract"值?

我正在使用RubyonRails3.2.2和Ruby1.9.2。给定以下多维数组:[["value1","value1_other"],["value2","value2_other"],["value3","value3_other"]]我想得到(注意:我想只“提取”所有“嵌套”数组的第一个值):["value1","value2","value3"]我怎样才能以聪明的方式做到这一点? 最佳答案 您可以使用Array#collect为外部数组的每个元素执行一个block。要获取第一个元素,请传递一个索引数组的block。arr.c

ruby - 以编程方式设置 Rack session cookie 过期

我正在使用Rack尝试在我的Sinatra应用程序中实现“记住我”功能。我可以将sessioncookie设置为在session结束时或X秒后过期,但我想同时执行这两种操作。例如,如果用户点击了“记住我”,那么我希望他们的session在X秒后结束。例如,我的app.rb有一行看起来像这样:useRack::Session::Cookie,:expire_after=>2592000,#30daysinseconds:secret=>MY_SECRET我尝试在用户登录时执行以下操作:if(!remember_me)env['rack.session.options'][:expire_

ruby - 为什么我不应该扩展由 Struct.new 初始化的实例?

我们有一个遗留代码库,其中rubocop报告了一些我永远无法理解的错误:Don'textendaninstanceinitializedbyStruct.new.Extendingitintroducesasuperfluousclasslevelandmayalsointroduceweirderrorsifthefileisrequiredmultipletimes.究竟什么是“多余的类级别”,可能会引入什么样的“怪异错误”?(问是因为显然我们在过去几年没有遇到过任何此类问题。) 最佳答案 Struct.new创建一个匿名类,它

ruby - 分析 Sinatra 应用程序的最佳方式是什么?

我想弄清楚分析Sinatra应用程序的最佳方法是什么。我想要一个解决方案,它可以为我提供路径中所有方法的时间概况,包括haml的呈现。有人介绍过Sinatra应用程序吗?有什么指点吗? 最佳答案 这是一种有效的技术,不确定它是否是最好的。require'sinatra'require'profiler'get'/'doProfiler__.start_profiledo_it_fastdo_it_slowdo_it_fastProfiler__.stop_profileProfiler__.print_profile(STDOUT)

ruby - 是否有一种简单的方法来检查 Ruby IO 实例是否会阻塞 read()?

我正在寻找一种Ruby中的方法,基本上是这样的:io.ready_for_read?我只想检查给定的IO对象(在我的例子中是popen调用的结果)是否有可用的输出,即后续调用io.read(1)不会阻塞。这是我看到的两个选项,我都不喜欢:io.read_nonblock-Unixread()的抽象太薄了-我不想处理errno错误处理。io.selectwithtimeout0--混淆了这个简单操作的目的。有没有我忽略的更好的选择? 最佳答案 有点晚了,但是如果您需要'io/wait',您可以使用ready?来验证IO是否可以无阻塞地

ruby - 为在线商店生成订单号的最佳方式?

我在线商店中的每个订单都有一个面向用户的订单号。我想知道生成它们的最佳方法。标准包括:简短在电话里很容易说(例如,“m”和“n”有歧义)独一无二校验和(矫枉过正?有用吗?)编辑:不透露总共有多少订单(客户可能会觉得下第3次订单会令人不安)现在我正在使用以下方法(无校验和):defgenerate_numberpossible_values='abfhijlqrstuxy'.upcase.split('')|'123456789'.split('')record=truewhilerecordrandom=Array.new(5){possible_values[rand(possibl

ruby - 我可以告诉或提示 RubyMine 局部变量或实例变量是什么类型吗?

我正在尝试利用RubyMine快速文档和代码完成。我很高兴地发现它如何很好地集成了YARD风格的注释:#@param[Numeric]width#@param[Array]values#@return[Widget]deffoo(width,values)...这些注释对参数、返回类型甚至类型化集合都非常有用。但是我找不到任何类似的标签,例如实例或局部变量,并且我很确定Ruby中没有可用的类型转换(我有提到我是新手吗?)有什么方法可以让RubyMine了解局部变量和/或实例变量的类型吗? 最佳答案 根据MattConnolly引用的

ruby - 如何在 mixin 方法中访问实例变量?

如何在mixin方法中访问实例变量?我可以想到2种方法,但两者似乎都有问题。让mixin方法像任何类方法一样直接访问实例变量,例如self.text。这样做的问题是它限制了混合方法的使用位置,并强制进行混合的类具有以特定方式命名的特定实例方法。将实例变量作为参数传递给mixin方法,这将产生如下代码:例子self.do_something(self.text)或@thing.do_something(@thing.text)这看起来很讨厌,而且不符合面向对象的原则。还有其他方法吗?我的担心对吗? 最佳答案 一般来说,避免让mixin